Search results for "Functional programming"
showing 10 items of 20 documents
Some reflections on semantic–pragmatic cycles
2020
Abstract This paper explores novel ways to consider semantic–pragmatic cycles using a dual strategy: an inwards strategy, whereby the distinctive traits of a pragmatic cycle are established, and an outwards strategy, whereby the categories that delimit semantic–pragmatic cycles are described. The result of this exploration is the distinction between “pragmatic cycle”, “replication”, “concomitance” and “paradigmatic increase” as four different yet related processes. In addition, this study integrates Construction Grammar into the description of each process and shows that the study of semantic–pragmatic cycles can benefit from a constructional approach, adopting Traugott and Trousdale’s (201…
Teaching types with a cognitively effective worked example format
2015
AbstractTeaching functional programming as a second programming paradigm is often difficult as students can have strong preconceptions about programming. When most of these preconceived ideas fail to be confirmed, functional programming may be seen as an unnecessarily difficult topic. A typical topic that causes such difficulties is the language of types employed by many modern functional languages. In this paper, we focus on addressing this difficulty through the use of step-by-step calculations of type expressions. The outcome of the study is an elaboration of a worked example format and a methodical approach for teaching types to beginner functional programmers.
Flipping and Blending : An Action Research Project on Improving a Functional Programming Course
2016
This article reports on an action research project on improving a functional programming course by moving toward a practical and flexible study environment—flipped and blended classroom. Teaching the topic of functional programming was found to be troublesome using a traditional lectured course format. The need to increase students’ amount of practice emerged while subsequent challenges relating to students’ independent practical coursework were observed. Particular concerns relating to group work, learning materials, and the attribute of flexibility were investigated during the third action research cycle. The research cycle was analyzed using a qualitative survey on students’ views, teach…
On the Power of Tree-Walking Automata
2000
Tree-walking automata (TWAs) recently received new attention in the fields of formal languages and databases. Towards a better understanding of their expressiveness, we characterize them in terms of transitive closure logic formulas in normal form. It is conjectured by Engelfriet and Hoogeboom that TWAs cannot define all regular tree languages, or equivalently, all of monadic second-order logic. We prove this conjecture for a restricted, but powerful, class of TWAs. In particular, we show that 1-bounded TWAs, that is TWAs that are only allowed to traverse every edge of the input tree at most once in every direction, cannot define all regular languages. We then extend this result to a class …
Nondeterministic operations on finite relational structures
1998
Abstract This article builds on a tutorial introduction to universal algebra for language theory (Courcelle, Theoret. Comput. Sci. 163 (1996) 1–54) and extends it in two directions. First, nondeterministic operations are considered, i.e., operations which give a set of results instead of a single one. Most of their properties concerning recognizability and equational definability carry over from the ordinary case with minor modifications. Second, inductive sets of evaluations are studied in greater detail. It seems that they are handled most naturally in the framework presented here. We consider the analogues of top-down and bottom-up tree transducers. Again, most of their closure propertie…
A framework for evaluating student interaction with automatically assessed exercises
2016
Automatic assessment has become a widely used technique in programming courses. Even though modern techniques can practically ensure functional correctness of student solutions, it is less clear how to promote quality interaction between students and the automatic assessment systems. In this article we propose a simple analytical framework for studying student interaction with the automatic assessment systems and use it to study our functional programming course.
Towards CNC Programming Using Haskell
2004
Recent advances in Computerized Numeric Control (CNC) have allowed the manufacturing of products with high quality standards. Since CNC programs consist of a series of assembler-like instructions, several high-level languages (e.g., AutoLISP, APL, OMAC) have been proposed to raise the programming abstraction level. Unfortunately, the lack of a clean semantics prevents the development of formal tools for the analysis and manipulation of programs. In this work, we propose the use of Haskell for CNC programming. The declarative nature of Haskell provides an excellent basis to develop program analysis and manipulation tools and, most importantly, to formally prove their correctness.
MLOG: a strongly typed confluent functional language with logical variables
1994
Poirriez, V., MLOG: a strongly typed confluent functional language with logical variables, Theoretical Computer Science 122 (1994) 201-223. A new programming language called MLOG is introduced. MLOG is a conservative extension of ML with logical variables. To validate our concepts, a compiler named CAML Light FLU0 was implemented. Numerous examples are presented to illustrate the possibilities of MLOG. The pattern matching of ML is kept for X-calculus bindings and an unification primitive is introduced for the logical variables bindings. A suspension mechanism allows cohabitation of pattern-matching and logical variables, Although the evaluation strategy for the application is fixed, the or…
Making teaching of programming learning-oriented and learner-directed
2011
Programming education has been traditionally realized in the form of lecturing, but other approaches are under discussion. These emphasize active participation on the part of students, and, as a research activity, consider pedagogic questions holistically. We join this discussion by stating a course design in which we promote a learning-oriented study culture where learning should not be characterized principally as the task of meeting some predefined completion requirements. Moreover, we want our course to be learner-directed meaning that students should take control over their own learning process. Grounded on these goals, this discussion paper gives us a starting point for a subsequent a…
The iconic interface for the PIctorial C language
2003
Iconic environments intend to provide expressive tools to implement, to debug and to execute programs. Moreover its pictorial constructs guide the user to design algorithms in an interactive fashion. Visual interfaces are especially required whenever programs run on an heterogeneous and reconfigurable multiprocessor system oriented to image analysis. Pictorial tools help the user to control the scope of variables, and the distribution of the tasks into the processors. In this paper, the general design, the visual-syntax, and the implementation of the first prototype of an iconic user interface for the PIctorial C Language (PICL) are described. >